{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "import json"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "import torch"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "device = torch.device(\"cuda\" if torch.cuda.is_available() else \"cpu\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "from gluonts.dataset.repository.datasets import get_dataset\n",
    "from gluonts.dataset.util import to_pandas\n",
    "from gluonts.evaluation import Evaluator\n",
    "from gluonts.evaluation.backtest import make_evaluation_predictions"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Failed to detect the name of this notebook, you can set it manually with the WANDB_NOTEBOOK_NAME environment variable to enable code saving.\n"
     ]
    }
   ],
   "source": [
    "from pts.dataset.repository import dataset_recipes\n",
    "from pts.model.tft import TemporalFusionTransformerEstimator\n",
    "from pts import Trainer"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "dataset = get_dataset(\"pts_m5\", regenerate=False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "entry = next(iter(dataset.train))\n",
    "train_series = to_pandas(entry)\n",
    "train_series.plot()\n",
    "plt.grid(which=\"both\")\n",
    "plt.legend([\"train series\"], loc=\"upper left\")\n",
    "plt.title(entry['item_id'])\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "entry = next(iter(dataset.test))\n",
    "test_series = to_pandas(entry)\n",
    "test_series.plot()\n",
    "plt.axvline(train_series.index[-1], color='r') # end of train dataset\n",
    "plt.grid(which=\"both\")\n",
    "plt.legend([\"test series\", \"end of train series\"], loc=\"upper left\")\n",
    "plt.title(entry['item_id'])\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "MetaData(freq='D', target=None, feat_static_cat=[CategoricalFeatureInfo(name='state_id', cardinality='3'), CategoricalFeatureInfo(name='store_id', cardinality='10'), CategoricalFeatureInfo(name='cat_id', cardinality='3'), CategoricalFeatureInfo(name='dept_id', cardinality='7'), CategoricalFeatureInfo(name='item_id', cardinality='3049')], feat_static_real=[], feat_dynamic_real=[BasicFeatureInfo(name='sell_price'), BasicFeatureInfo(name='event_1'), BasicFeatureInfo(name='event_2'), BasicFeatureInfo(name='snap')], feat_dynamic_cat=[], prediction_length=28)"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "dataset.metadata"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Recommended prediction horizon: 28\n",
      "Frequency of the time series: D\n"
     ]
    }
   ],
   "source": [
    "print(f\"Recommended prediction horizon: {dataset.metadata.prediction_length}\")\n",
    "print(f\"Frequency of the time series: {dataset.metadata.freq}\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [],
   "source": [
    "estimator = TemporalFusionTransformerEstimator(\n",
    "    freq=dataset.metadata.freq,\n",
    "    prediction_length=dataset.metadata.prediction_length,\n",
    "    context_length=dataset.metadata.prediction_length*5,\n",
    "    dropout_rate=0.1,\n",
    "    num_outputs=15,\n",
    "    trainer=Trainer(device=device,\n",
    "                    epochs=20,\n",
    "                    learning_rate=1e-3,\n",
    "                    num_batches_per_epoch=100,\n",
    "                    batch_size=128,\n",
    "                   )\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "0it [00:00, ?it/s]/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/nn/modules/module.py:795: UserWarning: Using a non-full backward hook when the forward contains multiple autograd Nodes is deprecated and will be removed in future versions. This hook will be missing some grad_input. Please use register_full_backward_hook to get the documented behavior.\n",
      "  warnings.warn(\"Using a non-full backward hook when the forward contains multiple autograd Nodes \"\n",
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/nn/modules/module.py:760: UserWarning: Using non-full backward hooks on a Module that does not return a single Tensor or a tuple of Tensors is deprecated and will be removed in future versions. This hook will be missing some of the grad_output. Please use register_full_backward_hook to get the documented behavior.\n",
      "  warnings.warn(\"Using non-full backward hooks on a Module that does not return a \"\n",
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/nn/modules/module.py:770: UserWarning: Using non-full backward hooks on a Module that does not take as input a single Tensor or a tuple of Tensors is deprecated and will be removed in future versions. This hook will be missing some of the grad_input. Please use register_full_backward_hook to get the documented behavior.\n",
      "  warnings.warn(\"Using non-full backward hooks on a Module that does not take as input a \"\n",
      "1it [00:02,  2.60s/it, avg_epoch_loss=0.1, epoch=0]/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "99it [00:10,  9.81it/s, avg_epoch_loss=0.0694, epoch=0]\n",
      "0it [00:00, ?it/s]/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "99it [00:10,  9.69it/s, avg_epoch_loss=0.0665, epoch=1]\n",
      "0it [00:00, ?it/s]/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "99it [00:10,  9.71it/s, avg_epoch_loss=0.0633, epoch=2]\n",
      "0it [00:00, ?it/s]/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "1it [00:02,  2.68s/it, avg_epoch_loss=0.0571, epoch=3]/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "99it [00:10,  9.77it/s, avg_epoch_loss=0.0634, epoch=3]\n",
      "0it [00:00, ?it/s]/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "99it [00:10,  9.85it/s, avg_epoch_loss=0.0626, epoch=4]\n",
      "0it [00:00, ?it/s]/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "99it [00:09,  9.92it/s, avg_epoch_loss=0.0631, epoch=5]\n",
      "0it [00:00, ?it/s]/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "1it [00:02,  2.62s/it, avg_epoch_loss=0.0632, epoch=6]/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "99it [00:10,  9.60it/s, avg_epoch_loss=0.0624, epoch=6]\n",
      "0it [00:00, ?it/s]/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "1it [00:02,  2.63s/it, avg_epoch_loss=0.0628, epoch=7]/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "99it [00:09, 10.00it/s, avg_epoch_loss=0.0624, epoch=7]\n",
      "0it [00:00, ?it/s]/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "99it [00:10,  9.63it/s, avg_epoch_loss=0.0616, epoch=8]\n",
      "0it [00:00, ?it/s]/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "1it [00:02,  2.69s/it, avg_epoch_loss=0.0656, epoch=9]/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "99it [00:10,  9.64it/s, avg_epoch_loss=0.0613, epoch=9]\n",
      "0it [00:00, ?it/s]/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "99it [00:10,  9.56it/s, avg_epoch_loss=0.0619, epoch=10]\n",
      "0it [00:00, ?it/s]/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "1it [00:02,  2.67s/it, avg_epoch_loss=0.0579, epoch=11]/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "99it [00:10,  9.78it/s, avg_epoch_loss=0.061, epoch=11] \n",
      "0it [00:00, ?it/s]/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "99it [00:10,  9.82it/s, avg_epoch_loss=0.0612, epoch=12]\n",
      "0it [00:00, ?it/s]/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "99it [00:10,  9.69it/s, avg_epoch_loss=0.0609, epoch=13]\n",
      "0it [00:00, ?it/s]/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "1it [00:02,  2.64s/it, avg_epoch_loss=0.0572, epoch=14]/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "2it [00:02,  1.15s/it, avg_epoch_loss=0.0617, epoch=14]/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "99it [00:10,  9.77it/s, avg_epoch_loss=0.0612, epoch=14]\n",
      "0it [00:00, ?it/s]/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "1it [00:02,  2.64s/it, avg_epoch_loss=0.0551, epoch=15]/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "99it [00:10,  9.76it/s, avg_epoch_loss=0.0614, epoch=15]\n",
      "0it [00:00, ?it/s]/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "1it [00:02,  2.66s/it, avg_epoch_loss=0.0553, epoch=16]/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "99it [00:10,  9.57it/s, avg_epoch_loss=0.0612, epoch=16]\n",
      "0it [00:00, ?it/s]/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "1it [00:02,  2.61s/it, avg_epoch_loss=0.0677, epoch=17]/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "3it [00:02,  1.35it/s, avg_epoch_loss=0.0637, epoch=17]/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "99it [00:10,  9.56it/s, avg_epoch_loss=0.061, epoch=17] \n",
      "0it [00:00, ?it/s]/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "1it [00:02,  2.63s/it, avg_epoch_loss=0.0623, epoch=18]/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "99it [00:09,  9.92it/s, avg_epoch_loss=0.0607, epoch=18]\n",
      "0it [00:00, ?it/s]/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "1it [00:02,  2.66s/it, avg_epoch_loss=0.0503, epoch=19]/home/kashif/.env/pytorch/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py:63: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /pytorch/torch/csrc/utils/tensor_numpy.cpp:143.)\n",
      "  return default_collate([torch.as_tensor(b) for b in batch])\n",
      "99it [00:10,  9.74it/s, avg_epoch_loss=0.0607, epoch=19]\n"
     ]
    }
   ],
   "source": [
    "predictor = estimator.train(dataset.train, num_workers=8, shuffle_buffer_length=1024)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [],
   "source": [
    "forecast_it, ts_it = make_evaluation_predictions(\n",
    "    dataset=dataset.test,  # test dataset\n",
    "    predictor=predictor,  # predictor\n",
    "    num_samples=100,  # number of sample paths we want for evaluation\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [],
   "source": [
    "forecasts = list(forecast_it)\n",
    "tss = list(ts_it)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Running evaluation: 100%|██████████| 30490/30490 [00:00<00:00, 73264.53it/s]\n"
     ]
    }
   ],
   "source": [
    "evaluator = Evaluator()\n",
    "agg_metrics, item_metrics = evaluator(iter(tss), iter(forecasts), num_series=len(dataset.test))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "{\n",
      "    \"MSE\": 5.050131371510992,\n",
      "    \"abs_error\": 825300.8760404031,\n",
      "    \"abs_target_sum\": 1231764.0,\n",
      "    \"abs_target_mean\": 1.4428196598416343,\n",
      "    \"seasonal_error\": 1.1272178349378457,\n",
      "    \"MASE\": 0.8942878068619854,\n",
      "    \"MAPE\": 0.7959536171820637,\n",
      "    \"sMAPE\": 1.5777253903358783,\n",
      "    \"OWA\": NaN,\n",
      "    \"MSIS\": NaN,\n",
      "    \"QuantileLoss[0.1]\": 235492.3691656391,\n",
      "    \"Coverage[0.1]\": 0.0841399990629246,\n",
      "    \"QuantileLoss[0.2]\": 432733.80553320213,\n",
      "    \"Coverage[0.2]\": 0.16420606287775852,\n",
      "    \"QuantileLoss[0.3]\": 598878.4456814768,\n",
      "    \"Coverage[0.3]\": 0.2313885114557466,\n",
      "    \"QuantileLoss[0.4]\": 731890.6043083849,\n",
      "    \"Coverage[0.4]\": 0.33211357353699106,\n",
      "    \"QuantileLoss[0.5]\": 825300.8755625215,\n",
      "    \"Coverage[0.5]\": 0.4319109309843977,\n",
      "    \"QuantileLoss[0.6]\": 875338.4524397269,\n",
      "    \"Coverage[0.6]\": 0.5821979103218853,\n",
      "    \"QuantileLoss[0.7]\": 866631.8245184756,\n",
      "    \"Coverage[0.7]\": 0.6952033453591342,\n",
      "    \"QuantileLoss[0.8]\": 776677.5575613247,\n",
      "    \"Coverage[0.8]\": 0.790309469146793,\n",
      "    \"QuantileLoss[0.9]\": 565017.1712122711,\n",
      "    \"Coverage[0.9]\": 0.8809902544159678,\n",
      "    \"RMSE\": 2.247249735011886,\n",
      "    \"NRMSE\": 1.5575402786364494,\n",
      "    \"ND\": 0.670015421818143,\n",
      "    \"wQuantileLoss[0.1]\": 0.1911830262661022,\n",
      "    \"wQuantileLoss[0.2]\": 0.3513122688544251,\n",
      "    \"wQuantileLoss[0.3]\": 0.48619576938559406,\n",
      "    \"wQuantileLoss[0.4]\": 0.5941808693129406,\n",
      "    \"wQuantileLoss[0.5]\": 0.6700154214301778,\n",
      "    \"wQuantileLoss[0.6]\": 0.7106381193473157,\n",
      "    \"wQuantileLoss[0.7]\": 0.7035696972134886,\n",
      "    \"wQuantileLoss[0.8]\": 0.630540880851628,\n",
      "    \"wQuantileLoss[0.9]\": 0.4587057027257422,\n",
      "    \"mean_absolute_QuantileLoss\": 656440.1228870025,\n",
      "    \"mean_wQuantileLoss\": 0.5329268617097127,\n",
      "    \"MAE_Coverage\": 0.03417110475982236\n",
      "}\n"
     ]
    }
   ],
   "source": [
    "print(json.dumps(agg_metrics, indent=4))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "item_metrics.plot(x='MAPE', y='MASE', kind='scatter')\n",
    "plt.grid(which=\"both\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>item_id</th>\n",
       "      <th>MSE</th>\n",
       "      <th>abs_error</th>\n",
       "      <th>abs_target_sum</th>\n",
       "      <th>abs_target_mean</th>\n",
       "      <th>seasonal_error</th>\n",
       "      <th>MASE</th>\n",
       "      <th>MAPE</th>\n",
       "      <th>sMAPE</th>\n",
       "      <th>OWA</th>\n",
       "      <th>...</th>\n",
       "      <th>QuantileLoss[0.5]</th>\n",
       "      <th>Coverage[0.5]</th>\n",
       "      <th>QuantileLoss[0.6]</th>\n",
       "      <th>Coverage[0.6]</th>\n",
       "      <th>QuantileLoss[0.7]</th>\n",
       "      <th>Coverage[0.7]</th>\n",
       "      <th>QuantileLoss[0.8]</th>\n",
       "      <th>Coverage[0.8]</th>\n",
       "      <th>QuantileLoss[0.9]</th>\n",
       "      <th>Coverage[0.9]</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>6828</th>\n",
       "      <td>FOODS_3_070_WI_2</td>\n",
       "      <td>531.909877</td>\n",
       "      <td>518.847107</td>\n",
       "      <td>569.0</td>\n",
       "      <td>20.321429</td>\n",
       "      <td>17.788732</td>\n",
       "      <td>1.041685</td>\n",
       "      <td>3.032136</td>\n",
       "      <td>0.946577</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>518.847116</td>\n",
       "      <td>0.642857</td>\n",
       "      <td>518.082115</td>\n",
       "      <td>0.750000</td>\n",
       "      <td>510.659755</td>\n",
       "      <td>0.892857</td>\n",
       "      <td>477.338791</td>\n",
       "      <td>0.964286</td>\n",
       "      <td>348.039331</td>\n",
       "      <td>0.964286</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8462</th>\n",
       "      <td>FOODS_3_234_CA_3</td>\n",
       "      <td>43.477325</td>\n",
       "      <td>176.806824</td>\n",
       "      <td>2.0</td>\n",
       "      <td>0.071429</td>\n",
       "      <td>15.951334</td>\n",
       "      <td>0.395862</td>\n",
       "      <td>6.970813</td>\n",
       "      <td>1.966008</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>176.806829</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>241.263911</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>247.255903</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>217.906344</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>164.628036</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8468</th>\n",
       "      <td>FOODS_3_234_WI_2</td>\n",
       "      <td>1899.364955</td>\n",
       "      <td>935.622803</td>\n",
       "      <td>1089.0</td>\n",
       "      <td>38.892857</td>\n",
       "      <td>22.698745</td>\n",
       "      <td>1.472112</td>\n",
       "      <td>3.761671</td>\n",
       "      <td>1.129167</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>935.622761</td>\n",
       "      <td>0.428571</td>\n",
       "      <td>988.843789</td>\n",
       "      <td>0.535714</td>\n",
       "      <td>935.429903</td>\n",
       "      <td>0.571429</td>\n",
       "      <td>751.070375</td>\n",
       "      <td>0.714286</td>\n",
       "      <td>493.297098</td>\n",
       "      <td>0.892857</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9742</th>\n",
       "      <td>FOODS_3_362_CA_3</td>\n",
       "      <td>362.378557</td>\n",
       "      <td>456.977081</td>\n",
       "      <td>313.0</td>\n",
       "      <td>11.178571</td>\n",
       "      <td>8.542276</td>\n",
       "      <td>1.910569</td>\n",
       "      <td>4.160606</td>\n",
       "      <td>1.190415</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>456.977058</td>\n",
       "      <td>0.750000</td>\n",
       "      <td>462.123611</td>\n",
       "      <td>0.928571</td>\n",
       "      <td>425.437444</td>\n",
       "      <td>0.964286</td>\n",
       "      <td>371.548067</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>257.005370</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>4 rows × 29 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "               item_id          MSE   abs_error  abs_target_sum  \\\n",
       "6828  FOODS_3_070_WI_2   531.909877  518.847107           569.0   \n",
       "8462  FOODS_3_234_CA_3    43.477325  176.806824             2.0   \n",
       "8468  FOODS_3_234_WI_2  1899.364955  935.622803          1089.0   \n",
       "9742  FOODS_3_362_CA_3   362.378557  456.977081           313.0   \n",
       "\n",
       "      abs_target_mean  seasonal_error      MASE      MAPE     sMAPE  OWA  ...  \\\n",
       "6828        20.321429       17.788732  1.041685  3.032136  0.946577  NaN  ...   \n",
       "8462         0.071429       15.951334  0.395862  6.970813  1.966008  NaN  ...   \n",
       "8468        38.892857       22.698745  1.472112  3.761671  1.129167  NaN  ...   \n",
       "9742        11.178571        8.542276  1.910569  4.160606  1.190415  NaN  ...   \n",
       "\n",
       "      QuantileLoss[0.5]  Coverage[0.5]  QuantileLoss[0.6]  Coverage[0.6]  \\\n",
       "6828         518.847116       0.642857         518.082115       0.750000   \n",
       "8462         176.806829       1.000000         241.263911       1.000000   \n",
       "8468         935.622761       0.428571         988.843789       0.535714   \n",
       "9742         456.977058       0.750000         462.123611       0.928571   \n",
       "\n",
       "      QuantileLoss[0.7]  Coverage[0.7]  QuantileLoss[0.8]  Coverage[0.8]  \\\n",
       "6828         510.659755       0.892857         477.338791       0.964286   \n",
       "8462         247.255903       1.000000         217.906344       1.000000   \n",
       "8468         935.429903       0.571429         751.070375       0.714286   \n",
       "9742         425.437444       0.964286         371.548067       1.000000   \n",
       "\n",
       "      QuantileLoss[0.9]  Coverage[0.9]  \n",
       "6828         348.039331       0.964286  \n",
       "8462         164.628036       1.000000  \n",
       "8468         493.297098       0.892857  \n",
       "9742         257.005370       1.000000  \n",
       "\n",
       "[4 rows x 29 columns]"
      ]
     },
     "execution_count": 40,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "item_metrics[item_metrics.MAPE > 3]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [],
   "source": [
    "def plot_quantiles(ts_entry, forecast_entry, prediction_length, path=None, sample_id=None, inline=True):\n",
    "    plot_length = 150\n",
    "\n",
    "    _, ax = plt.subplots(1, 1, figsize=(10, 7))\n",
    "    ts_entry[-plot_length:].plot(ax=ax)\n",
    "    forecast_entry.plot(color='g')\n",
    "    ax.axvline(ts_entry.index[-prediction_length], color='r')\n",
    "    if inline:\n",
    "        plt.show()\n",
    "        plt.clf()\n",
    "    else:\n",
    "        plt.savefig('{}forecast_{}.pdf'.format(path, sample_id))\n",
    "        plt.close()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x504 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "<Figure size 432x288 with 0 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_quantiles(tss[1585], forecasts[1585], dataset.metadata.prediction_length)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
